#pragma once
#include <memory>

template<typename T>
class LinkedListNode
{
public:
	LinkedListNode(T const& value) : _value(value)
	{
	}

	T value() const
	{
		return _value;
	}

	std::shared_ptr<LinkedListNode<T>> next() const
	{
		return _next;
	}

	void setNext(std::shared_ptr<LinkedListNode<T>> next)
	{
		_next = next;
	}

private:
	T _value;
	std::shared_ptr<LinkedListNode<T>> _next;
};

